
/**
 * @description user service
 * @author 刘煎蛋
 */

const { User } = require("../db/model");
const { formatUser } = require('./_format');

/**
  * 
  * @param {string} userName  用户名
  * @param {string} password  密码
  */
async function getUserInfo(userName, password) {
    const wherOpt = { userName };
    if ( password ) {
        Object.assign(wherOpt,{ password });
    }
    // 以用户的姓名 密码为条件查询
    const result = await User.findOne({
        attributes: ['id','userName','nickName','picture','city'],
        where: wherOpt
    })
    // 如果是空的 直接退出
    if ( result == null ) return result;
    // 如果找得到用户 直接返回查询出的结果
    return formatUser(result.dataValues);
}

/**
 * 
 * @param {string} userName  用户名
 * @param {string} password  密码
 * @param {number} gender   性别
 * @param {string} nickName     昵称
 */
async function createUser({ userName, password, gender = 3, nickName }) {
    const result = await User.create({
        userName,
        password,
        nickName: nickName ? nickName : userName,
        gender
    })
    const data = result.dataValues;
    return data;
}

module.exports = {
    getUserInfo,
    createUser
}